Android后端的项目创建流程(IDEA2020 + Tomcat 10 + JDK11)

您所在的位置:网站首页 用android studio开发 Android后端的项目创建流程(IDEA2020 + Tomcat 10 + JDK11)

Android后端的项目创建流程(IDEA2020 + Tomcat 10 + JDK11)

2023-07-27 04:58| 来源: 网络整理| 查看: 265

Tomcat + Servlet 实现Android后端开发,实现一个简单的注册功能 这只是一个简单的测试项目,具体实现还需要自己学习,为创建Android后端项目提供一个思路,目前网上大多教程的开发环境都是Eclipse EE 或者过时很久,这是基于其他的教程所编写的一个开发流程,留作记录。

1.准备工作

开发工具:Android Studio + IDEA 2020 JDK版本: jdk11 数据库:MySQL 8.0.22 数据库可视化软件:Navicat Premium 15 服务器:Tomcat 10

(1)App写出基础框架 用异步任务发送Http请求,用get和post方法 (2)配置上述软件的环境变量

2.创建项目

1. 新建一个IDEA项目 选择Maven,从原型创建,选择webapp,然后Next创建(A simple Java web application) 在这里插入图片描述 2.自动生成的项目结构如下 在这里插入图片描述 右键main新建文件夹,同时创建两个文件夹,java文件夹用来放项目代码,resource文件夹用来放资源文件 在这里插入图片描述

3.修改pom.xml中的项目依赖 将Maven的jdk版本改为自己安装的jdk版本

UTF-8 11 11

在 dependencies中添加依赖mysql-connector-java,根据自己的mysql版本选择对应的版本

junit junit 4.11 test mysql mysql-connector-java 8.0.22

点击右上角按钮,加载 Maven变更 在这里插入图片描述 4.添加项目依赖 打开项目结构,选择Tomcat项目依赖 在这里插入图片描述

3.编写Servlet代码

1.在main/java文件夹下创建一个Servlet包,新建一个.class文件继承于HttpServlet并重写doGet和doPost方法 resp.setContentType(“text/html;charset=utf-8”); // 设置响应报文的编码格式,避免出现中文乱码的情况

package Servlet; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; public class TestServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String account = req.getParameter("account"); // 从 request 中获取名为 account 的参数的值 String password = req.getParameter("password"); // 从 request 中获取名为 password 的参数的值 System.out.println("account:" + account + "\npassword:" + password); // 打印出来看一看 String result = ""; if("abc".equals(account) && "123".equals(password)){ // 模拟登陆账号、密码验证 result = "Login Success! 成功了"; }else { result = "Sorry! Account or password error."; } /* 这里我们只是模拟了一个最简单的业务逻辑,当然,你的实际业务可以相当复杂 */ resp.setContentType("text/html;charset=utf-8"); // 设置响应报文的编码格式 PrintWriter pw = resp.getWriter(); // 获取 response 的输出流 pw.println(result); // 通过输出流把业务逻辑的结果输出 pw.flush(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); } }

2.在web.xml中添加Servlet 在url-pattern中一定注意加“/”,这是访问Servlet的路径

Archetype Created Web Application test Servlet.TestServlet test /test

3.编辑配置 点击左上角+号,选择Tomcat本地服务器,点击部署,选择添加工件,点击确定保存 在这里插入图片描述 在这里插入图片描述

在这里插入图片描述 4.运行项目

如果Tomcat的log出现中文乱码,就打开tomcat安装目录的conf文件夹,打开logging.properties文件,将里面的编码格式改为GBK 在这里插入图片描述

服务器启动成功,会自动弹出初始网页,就是项目中的web.jsp,在地址栏输入:

http://localhost:8080/ss_war_exploded/test?account=abc&password=123

http://localhost:8080/ss_war_exploded/就是初始网页,后面跟/test就是访问上文所写的TestServlet,问号后面跟的是request参数

出现下面的文字表示访问成功 在这里插入图片描述 至此,Tomcat服务器的访问就没有问题了,接下来是数据库的连接

4.编写数据库代码

1.用Navicat连接MySQL数据库,写连接名,输入mysql的密码,测试连接,连接成功就确定保存 在这里插入图片描述

2.新建一个数据库fistmysql两个用户表user_login和user_info 在这里插入图片描述 user_info表 在这里插入图片描述 user_login表

在这里插入图片描述

3.在java文件夹下新建一个db包,新建一个DBUtil类,用来连接数据库

根据自己的mysql版本选择对应的Driver 可以参考菜鸟教程的连接方法:https://www.runoob.com/java/java-mysql-connect.html

package db; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBUtil { // table public static final String TABLE_PASSWORD = "user_login"; public static final String TABLE_USERINFO = "user_info"; public static Connection getConnect() { String url="jdbc:mysql://localhost:3306/fistmysql?&useSSL=false&serverTimezone=UTC"; // 数据库的Url Connection connecter = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); // java反射,固定写法 connecter = DriverManager.getConnection(url, "root", "1997"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { System.out.println("SQLException: " + e.getMessage()); System.out.println("SQLState: " + e.getSQLState()); System.out.println("VendorError: " + e.getErrorCode()); } return connecter; } }

4.新建一个注册Servlet来测试数据库

package Servlet; import db.DBUtil; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.HashMap; public class RegisterServlet extends HttpServlet { public RegisterServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String account = request.getParameter("account"); // 从 request 中获取名为 account 的参数的值 String password = request.getParameter("password"); // 从 request 中获取名为 password 的参数的值 System.out.println("account:" + account + "\npassword:" + password); // 打印出来看一看 String resCode = ""; String resMsg = ""; String userId = ""; /* 这里我们做一个最简单的注册逻辑,当然,你的实际业务可以相当复杂 */ try { Connection connect = DBUtil.getConnect(); Statement statement = connect.createStatement(); // Statement可以理解为数据库操作实例,对数据库的所有操作都通过它来实现 ResultSet result; String sqlQuery = "select * from " + DBUtil.TABLE_PASSWORD + " where account='" + account + "'"; // 查询类操作返回一个ResultSet集合,没有查到结果时ResultSet的长度为0 result = statement.executeQuery(sqlQuery); // 先查询同样的账号(比如手机号)是否存在 if(result.next()){ // 已存在 resCode = "201"; resMsg = "该账号已注册,请使用此账号直接登录或使用其他账号注册"; userId = ""; } else { // 不存在 String sqlInsertPass = "insert into " + DBUtil.TABLE_PASSWORD + "(account,password) values('"+account+"','"+password+"')"; // 更新类操作返回一个int类型的值,代表该操作影响到的行数 int row1 = statement.executeUpdate(sqlInsertPass); // 插入帐号密码 if(row1 == 1){ String sqlQueryId = "select userId from " + DBUtil.TABLE_PASSWORD + " where account='" + account + "'"; ResultSet result2 = statement.executeQuery(sqlQueryId); // 查询新增记录的userId if(result2.next()){ userId = result2.getInt("userId") + ""; } String sqlInsertInfo = "insert into " + DBUtil.TABLE_USERINFO + "(userId) values('" + userId + "')"; int row2 = statement.executeUpdate(sqlInsertInfo); // 在用户信息表中插入刚注册的Id if(row2 == 1){ // 两个表中都插入成功,从业务角度认定为注册成功 resCode = "100"; resMsg = "注册成功"; } } else { resCode = "202"; resMsg = "用户信息表插入错误"; userId = ""; } } } catch (SQLException e) { e.printStackTrace(); } HashMap map = new HashMap(); map.put("resCode", resCode); map.put("resMsg", resMsg); map.put("userId", userId); response.setContentType("text/html;charset=utf-8"); // 设置响应报文的编码格式 PrintWriter pw = response.getWriter(); // 获取 response 的输出流 pw.println(map.toString()); // 通过输出流把业务逻辑的结果输出 pw.flush(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }

5.同样的,在web.xml中添加这个Servlet

Archetype Created Web Application test Servlet.TestServlet register Servlet.RegisterServlet register /reg test /test

6.运行项目,在浏览器输入

http://localhost:8080/ss_war_exploded/reg?account=root&password=123

在这里插入图片描述 注册成功,刷新一下Navicat中的数据,可以看到数据已经被添加到数据库中 在这里插入图片描述 再一次刷新浏览器,相当于再一次提交GET请求,对于同一个账号,就会注册失败 在这里插入图片描述 至此,mysql数据库也就连接成功



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3